﻿Module Contract
    Public Sub ArgumentNotNull(ByVal argument As Object, ByVal name As String)
        If argument Is Nothing Then
            Throw New ArgumentNullException("name")
        End If
    End Sub

    Public Sub AssertArgumentInRange(ByVal assert As Boolean, ByVal name As String, ByVal description As String)
        If Not assert Then
            Throw New ArgumentOutOfRangeException("name", description)
        End If
    End Sub

    Public Sub GeneralArgumentError(ByVal name As String, ByVal description As String)
        Throw New ArgumentException(description, name)
    End Sub
End Module
